/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Manejadores;
import Gestion.DocumentoAcudiente;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
/**
 *
 * @author Usuario
 */
public class ControlDocumentoAcudiente {

static Connection con;
static ManejadorBaseDatos mbd=ManejadorBaseDatos.getInstancia();

public static DocumentoAcudiente consultarDocumentoAcudiente(int coddocacud) throws SQLException, Exception {
    mbd.conectar();
    con=mbd.getConexion();
     String coddocacud1=coddocacud +"";
      if (coddocacud1==null) {
          throw new SQLException("No hay elemento clave de la clase DocumentoAcudiente");
     }
         ResultSet rs = null;
         PreparedStatement pst = null;
        DocumentoAcudiente documentoacudiente = null;
     try {
         pst = con.prepareStatement("select * from  Documento_Acudiente where coddocacud = ?");
         pst.setInt(1, coddocacud );

         rs = pst.executeQuery();
         while(rs.next()) {

             documentoacudiente =DocumentoAcudiente.load(rs);
         }
    } finally {
         if (rs != null) {
            rs.close();
         }
         if (pst != null) {
           pst.close();
         }
          return  documentoacudiente;
    }
}
public static boolean existeDocumentoAcudiente(int codocacud) throws SQLException, Exception {
    mbd.conectar();
    con=mbd.getConexion();
     String codocacud1=codocacud +"";
      if (codocacud1==null) {
          throw new SQLException("No hay elemento clave de la clase DocumentoAcudiente");
     }
         ResultSet rs = null;
         PreparedStatement pst = null;
         boolean docacud = false;
     try {
         pst = con.prepareStatement("select * from Documento_Acudiente where coddocacud = ?");
         pst.setInt(1, codocacud);

         rs = pst.executeQuery();
         while(rs.next()) {

             docacud = true;
         }
    } finally {
         if (rs != null) {
            rs.close();
         }
         if (pst != null) {
           pst.close();
         }
          return docacud;
    }
}

public static void registrarDocumentoAcudiente(DocumentoAcudiente documentoacudiente) throws SQLException, Exception {
    mbd.conectar();
    con=mbd.getConexion();
     if (con == null ) {
          throw new SQLException("no hay conexion" );
     }
     PreparedStatement pst = null;//hacer nula la consulata.....
     try {
          pst = con.prepareStatement("Insert Into Documento_Acudiente values(?,?,?)");
          pst.setInt(1,documentoacudiente.getCoddocacud());
          pst.setInt(2,documentoacudiente.getDocumento().getCodDocumento());
          pst.setInt(3,documentoacudiente.getPersona().getIdentificacion());


          pst.executeUpdate();
    }finally {
        if (pst != null) {
             pst.close();
        }
   }
}
public static boolean ActualizarDocumentoAcudiente (DocumentoAcudiente documentoacudiente, int coddocacud) throws SQLException, Exception {
    mbd.conectar();
    con=mbd.getConexion();
    if ( consultarDocumentoAcudiente(coddocacud) == null) {
           throw new SQLException ("DocumentoAcudiente no registradas" );
       }
       PreparedStatement pst = null;
       boolean res = false;
       try {
         pst = con.prepareStatement("Update Docente_Acudiente set  coddocacud = ? , CodDocumento = ?,  IdetAcudiente, where coddocacud = ?" ) ;
          pst.setInt(1,documentoacudiente.getCoddocacud());
          pst.setInt(2,documentoacudiente.getDocumento().getCodDocumento());
          pst.setInt(3,documentoacudiente.getPersona().getIdentificacion());

          pst.setInt(4 , coddocacud);
         int r = pst.executeUpdate();
       if (r != 0) {
          res = true;
       }
       } finally {
          if (pst != null) {
            pst.close();
          }
       }
         return res;
 }
public static boolean EliminarDocumentoAcudiente(int coddocacud) throws SQLException, Exception {
    mbd.conectar();
    con=mbd.getConexion();
    if (consultarDocumentoAcudiente(coddocacud) == null) {
        throw new SQLException("No hay DocumentoAcudiente para eliminar");
     }
     PreparedStatement pst = null;
     boolean res = false;
     try {
        pst = con.prepareStatement("delete from Documento_Acudiente where coddocacud = ?");
        pst.setInt(1, coddocacud);
        int r = pst.executeUpdate();
        if (r != 0) {
           res = true;
        }
     } finally {
        if (pst != null) {
           pst.close();
        }
     }
     return res;
}
  //metodo para listar asociados
public static List<DocumentoAcudiente> listarDocumentoAcudiente() throws SQLException, Exception {
      mbd.conectar();
        con=mbd.getConexion();
        ResultSet rs = null;
     PreparedStatement pst = null;
     List<DocumentoAcudiente> listadocumentoacudiente = new LinkedList();
     try {
        pst = con.prepareStatement("select * from Documento_Acudiente ");
        rs = pst.executeQuery();
        while(rs.next()) {
           listadocumentoacudiente.add(DocumentoAcudiente.load(rs));
        }
    } finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
  }
    return listadocumentoacudiente;
}
  public static int Contador() throws SQLException, Exception {
     mbd.conectar();
     con=mbd.getConexion();
     ResultSet rs = null;
     PreparedStatement pst = null;
     int ultimo=0;
     try {
        pst = con.prepareStatement("select (max(coddocacud)+1) as ul from Documento_Acudiente ");
        rs = pst.executeQuery();
        while(rs.next()) {
           ultimo=rs.getInt("ul");
        }
    } finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
  }
    return ultimo;
}
}
